1. Field of the Invention
The invention relates to the utilization of a power button of an information appliance to control the entry and exit into a diagnostic mode within a system comprised of an information appliance connected to a diagnostic information source.
2. Description of the Related Art
Personal Computer (PC) manufacturers have long been concerned with customer satisfaction. Manufacturers have learned customer satisfaction can be increased by reducing the number of required outside technician service calls. As a result, PC manufacturers have continued to pursue PC designs which reduce such service calls.
Historically, Read Only Memory (ROM) has not been in-system updateable. ROM has generally required the assistance of outside technicians to update its contents. ROM typically holds the initialization code, operating system code and related data. The Basic Input/Output System (BIOS), part of the initialization code, is usually located in the ROM. Over the years, as system enhancements and upgrades became common, the desirability of an updateable ROM has increased. Early on, the need for an in-system updateable ROM was addressed by the introduction of Electrically Erasable Programmable Read Only Memory (EEPROM). EEPROM is a non-volatile memory that is programmable and erasable by the means of an electronic pulse. Typically, such in-system updateable ROM could be updated from a variety of sources including removable media devices, modem links, or parallel or serial connectors. Although EEPROMs resolved the problem of providing an in-system updatable memory, the EEPROM technology has since been superceded by the introduction of Flash ROM. Flash ROM offers the advantages of both a block erase and a generally quicker programming than standard EEPROMs.
A problem with Flash ROMs, as well as updateable ROMs in general, is the potential that a BIOS might be corrupted when the BIOS is flashed. A BIOS might be corrupted, for example, if power was interrupted during the flashing process. In such a case, the PC would be unable to boot because its BIOS instructions would no longer be correct. To avoid this problem, it has become common practice to divide the Flash ROM memory into two sections, the boot block and the main block. The main block gets flashed while the boot block section is protected and therefore is not corrupted when a flash lays down a corrupted image. The boot block, therefore, can be used to store and protect kernel code that holds initialization code sufficient to boot the basic components of a system.
The code executed in the boot block is not the same in all PCs. The recent push by the computer industry to transition from a legacy to a legacy-free type design has significantly impacted the BIOS and the boot block. The computer industry has moved towards the new legacy-free design to avoid the limitations inherent with the legacy design, including its limited bandwidth and configuration inflexibility. The move to a legacy free configuration has meant the elimination of many elements of the old legacy PC architecture, including both hardware and firmware interfaces. A key difference between the legacy and the legacy-free configurations can be found in their interfaces.
The legacy interfaces are described as xe2x80x9cnondeterministicxe2x80x9d while legacy-free interfaces are considered xe2x80x9cdeterministic.xe2x80x9d Legacy interfaces are considered xe2x80x9cnondeterministicxe2x80x9d because the operating system cannot guarantee correct installation of devices. There exists little or no ability for hardware enumeration to allow the operating system to configure and control the devices. Typically, the user is required to manually define settings in the BIOS or actually manipulate switches on the hardware to change configurations settings. Legacy-free ports and buses are considered xe2x80x9cdeterministicxe2x80x9d, on the other hand, because the operating system can know and manage the installation, configuration, and control of the buses and devices. Deterministic components are easy to install, and the operating system can configure devices without resource conflicts and without requiring the user to intervene for manual settings.
The legacy-free design utilizes the Plug and Play approach for the detection, configuration, and attachment of peripheral devices. In a Plug and Play design, before any external device is accessible to the PC, bus enumeration code must be executed. Once the bus enumeration code has executed, the code that detects, enables and attaches the peripheral device must also be executed. The system requirements needed to perform this procedure, and in particular, to perform the recognition of a USB keyboard, requires approximately 35K to 40K of memory. Since the boot-block code is limited to about 8K of memory, there is not enough space in the boot block to connect such a device. In contrast, the old legacy design typically stored code in the boot block for the minimal initialization of a floppy disk and a PS/2 keyboard. Therefore, unlike the old legacy design which provided keyboard I/O during the execution of the boot-block code, the legacy-free design is without such a keyboard I/O during this period.
The old legacy design""s immediate access both to a floppy disk and a keyboard meant that a user could request a flash of the BIOS code, or the execution of another diagnostic command, by simply inserting a disk in the disk drive or by striking the appropriate key on the keyboard during execution of the boot block code. However, the new legacy-free design does not provide access to these devices during the boot block period.
Briefly, an illustrative system provides a method, apparatus and information appliance system for adding functionality to a power button where the use of the power button controls the entry and exiting, into and out of, a diagnostic mode. Further, the system contains an information appliance connected to a diagnostic information source.
To add functionality to the power button, a feature has been added to monitor the power button. The power button is monitored at strategic or appropriate times to determine whether or not the power button is pressed. The detection of a press of the power button, depending on when that press occurred, could indicate a request for entry into, or a request for exit out of, a diagnostic mode. There are two occasions where the system monitors the power button for a press: (1) a first button press occurring subsequent to system startup, which, if detected, indicates a user request to enter a diagnostic mode, and (2) a second button press occurring after detection of a first button press (which placed the system in a diagnostic mode), which, if detected, would indicate a user request to exit the diagnostic mode.
The diagnostic mode has two phases, a first phase and a second phase. The first phase is entered upon the detection of a first button press indicating that the user wishes to enter a diagnostic mode. Once in the first phase, the system monitors the power button, along with the interface between the information appliance and the diagnostic information source, to determine whether to continue onto the second phase of the diagnostic mode or whether to exit the diagnostic mode and continue normal operations in the information appliance. The second phase is entered upon the detection of a communication from the diagnostic information source before a button press from the user indicating a desire to exit the diagnostic mode. Once the second phase begins, the diagnostic information source is allowed to transmit information to the information appliance.
The illustrative system is particularly useful when incorporated into devices with limited interface connections such as legacy-free information appliances. The system allows for a standard existing power button on the information appliance to serve diagnosis purposes, avoiding the need for initializing peripherals requiring substantial execution space.